
#ifndef _MY_TYPES_H_
#define _MY_TYPES_H_

// signed
typedef char				int8;
typedef char				SBYTE;
typedef short				int16;
typedef short				SWORD;
typedef long				int32;
typedef long				SLONG;

// unsigned
typedef unsigned char		uint8;
typedef unsigned char		UBYTE;
typedef unsigned short		uint16;
typedef unsigned short		UWORD;
typedef unsigned long		uint32;
typedef unsigned long		ULONG;

#ifdef __linux__

// GNU defines long long for 64-bit integers
#define __cdecl
#define __fastcall
typedef long long			int64;
typedef unsigned long long	uint64;

#else

// MSVC defines __int64 for 64-bit integers
typedef __int64				int64;
typedef unsigned __int64	uint64;

#endif // __linux__


// Some useful....
typedef char *			STR;
typedef const char *	CSTR;
typedef	int				CHAR4;

//-------------------------------------------------------------------------------------------
//	Constants
//-------------------------------------------------------------------------------------------

// pointer zero
const int null	= 0;
//#define null		0


//////////////////////////////////////////////////////////////////////////////////////////////
// disable wanning

// warning C4244: 'initializing' : conversion from 'double' to 'float', possible loss of data
#pragma warning( disable: 4244 )


#endif